The present invention relates generally to the field of interface devices, and monitoring and control devices. More particularly, the invention relates to techniques for mirroring operation of software modules or components in such devices in coordination with one another.
A wide range of interface devices are known and are presently in use in many different fields. In industrial automation, for example, human machine interfaces or “HMIs” are commonly employed for monitoring or controlling various processes. The HMIs may read from or write to specific registers such that they can reflect the operating state of various machines, sensors, processes, and so forth. The interfaces can also write to registers and memories such that they can, to some extent, control the functions of the process. In monitoring functions alone, little or no actual control is executed. In many other settings similar devices are employed, such as in automobiles, aircraft, commercial settings, and a host of other applications. In many applications, the interface may not communicate with a remote device or process, but may be operated in a stand-alone manner.
A challenge in complex interface, monitoring and control situations involves the showing of information and states between software components. For example, in complex industrial settings, similar software may be resident on in run in different devices and processes, leading to potential inconsistencies in the presentation of information, as well as inefficiencies in network traffic, numeral utilization and processing requirements. Few attempts have been made at providing useful links between software so as to reduce such redundancies. At most, existing systems may permit different and diverse programmed devices to read from common or shared registers and to write to such registers. However, such software generally still operates independently and without significant interaction that could lead to even more complex functionality and greater efficiencies.
There is a need, therefore, for improved designs for distributed software and device components, particularly in interfaces and in monitoring and control devices. There is a particular need for relatively straightforward approaches to sharing data and states among software so as to provide similar information at different locations in complex systems that can be acted on either in identical or different ways by different software.